import Vue from 'vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue'
import router from './router'
import store from './store'
import axios from 'axios'
import VueAxios from 'vue-axios'
import  './permissions'
import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts;

// 不可用，报 Redirect is not allowed for a preflight request
// axios.interceptors.request.use(function(config){
// 	//比如是否需要设置 token
//   if(sessionStorage.getItem("token")){
//     alert(config);
//     //config.headers.token=sessionStorage.getItem("token");
//   }
//   return config;
// })

// 不可用，报 Redirect is not allowed for a preflight request

// axios.interceptors.request.use(
//   config => {
//     if (sessionStorage.getItem("token")) {  // 判断是否存在token，如果存在的话，则每个http header都加上token
//       config.headers.Authorization = `token ${sessionStorage.getItem("token")}`;
//     }
//     return config;
//   },
//   err => {
//     return Promise.reject(err);
//   })
//设置路径的默认前缀
axios.defaults.baseURL = "http://localhost:23232";

//用下面替换上面一句  解决问题
// const axios1 = axios.create({
//   timeout: 5000, // 请求超时时间,如果超过5s就会报错
//   baseURL: 'http://localhost:8081',// 表示我们请求api时候的基地址,此地址会拼接上请求中的url
//   withCredentials:true,
//   //headers: { a: 'foobar'} 
//   //params:{accessToken:token}
//   //params:{token:sessionStorage.getItem("token")}
// })
axios.interceptors.request.use(function(config){
	//比如是否需要设置 token
  if(sessionStorage.getItem("token")){
   // alert(config.url);
    var url = config.url;
    //alert(url);
    if(url.indexOf("?")!=-1){
      config.url=url+"&accessToken="+sessionStorage.getItem("token");
    }else{
      config.url=url+"?accessToken="+sessionStorage.getItem("token");
    }
    //alert(config.url);
    // alert(JSON.stringify(config));
    //config.headers.token=sessionStorage.getItem("token");
  }
  return config;
})
//把axios挂载到vue对象
Vue.prototype.$http = axios;
//路由之前拦截处理
router.beforeEach((to, from, next) => {
  //获取请求路径
  const path = to.path;
  //放行路径
    if (path === "/login") {
        return next();
    }
    //获取token值
  const token = sessionStorage.getItem("token");
  // token不空，放行
  if (token) {
    //alert(next);
    //alert(to);
   // alert(111);
    next()
  } else {
    //为空 到登录页面
    next({ path: '/login' })
  }
})
Vue.config.productionTip = false
Vue.use(ElementUI);




 
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
